def get_max_volume(volume_arr, capacity):
    """
    动态规划求解一辆车最大使用空间（类似 0-1 背包问题，这里价值和重量都是体积 ）
    :param volume_arr: 货物的体积数组
    :param capacity: 车辆的容积
    :return: 最大使用空间
    """
    n = len(volume_arr)
    # 创建状态数组，dp[i][j] 表示前 i 个货物，容积为 j 时的最大使用空间
    dp = [[0] * (capacity + 1) for _ in range(n + 1)]
    for i in range(1, n + 1):
        for j in range(1, capacity + 1):
            if j < volume_arr[i - 1]:
                dp[i][j] = dp[i - 1][j]
            else:
                dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - volume_arr[i - 1]] + volume_arr[i - 1])
    return dp[n][capacity]


if __name__ == "__main__":
    # 准备体积数据和容积数据
    volume_arr = [1, 2, 3, 4, 5, 6]
    capacity = 10
    max_volume = get_max_volume(volume_arr, capacity)
    print(max_volume)

